﻿using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using Cotizav.CONEXION;

namespace Cotizav.PRESENTACION.Familia
{
    public partial class PanelFamilia : Form
    {
        List<FAMILIA> familias;

        CtrlFamilia ctFamilia;
        CtrlMarca ctMarca;
        CtrlModelo ctModelo;
        
        public PanelFamilia()
        {
            InitializeComponent();

            familias = new List<FAMILIA>();

            ctFamilia = new CtrlFamilia();
            ctMarca = new CtrlMarca();
            ctModelo = new CtrlModelo();
        }

        private void Familia_Load(object sender, EventArgs e)
        {
            this.loadTreeFamilia();
        }

        public void loadTreeFamilia()
        {
            TreeNode parentNode = new TreeNode("Marcas");
            parentNode.ImageIndex = 0;
            //(TreeNode subParentNode = null;

            //List<FAMILIA> familias = ctFamilia.getListFamilia();

            //foreach (FAMILIA f in familias)
            //{
            //    subParentNode = new TreeNode(f.nombreFamilia);
            //    subParentNode.Tag = f.idFamilia;                
            //    subParentNode.ImageIndex = 1;
            List<MARCA> marcasxfamilia = ctMarca.getListMarca();

            foreach (MARCA m in marcasxfamilia)
            {
                TreeNode childNode = new TreeNode(m.nombreMarca);
                childNode.ImageIndex = 2;
                childNode.Tag = m.idMarca;
                List<MODELO> modeloxmarca = ctModelo.getListModelo(m.idMarca);

                foreach (MODELO mod in modeloxmarca)
                {
                    TreeNode grandchildNode = new TreeNode(mod.nombreModelo);
                    grandchildNode.ImageIndex = 3;
                    grandchildNode.Tag = mod.idModelo;

                    childNode.Nodes.Add(grandchildNode);
                }

                parentNode.Nodes.Add(childNode);
            }

            //    parentNode.Nodes.Add(subParentNode);
            //}

            //parentNode.Nodes.Add(subParentNode);
            treeEquipos.Nodes.Clear();
            treeEquipos.Nodes.Add(parentNode);
            treeEquipos.ExpandAll();
        }

        private void treeEquipos_AfterSelect(object sender, TreeViewEventArgs e)
        {
            if (treeEquipos.SelectedNode != null)
            {                
                TreeNode selectedNode = treeEquipos.SelectedNode;

                if (selectedNode.Tag != null)
                {
                    string idSelectedNode = selectedNode.Tag.ToString();

                    if (!string.IsNullOrWhiteSpace(idSelectedNode))
                    {
                        //verificamos como inicia el id del elemento que se selecionó
                        if (idSelectedNode.StartsWith("FAM"))
                        {
                            //Es un elemento de la tabla FAMILIA
                            //mostramos el UC para editar la familia
                            splitContainer1.Panel2.Controls.Clear();
                            IUFamilia iufam = new IUFamilia();
                            iufam.mostrarDatos(idSelectedNode);
                            splitContainer1.Panel2.Controls.Add(iufam);
                        }
                        else if (idSelectedNode.StartsWith("MARC"))
                        {
                            //Es un elemento de la tabla MARCA
                            splitContainer1.Panel2.Controls.Clear();
                            IUMarca iuMarca = new IUMarca();
                            iuMarca.mostrarDatos(idSelectedNode);
                            splitContainer1.Panel2.Controls.Add(iuMarca);
                        }
                        else if (idSelectedNode.StartsWith("MOD"))
                        {
                            //Es un elemento de la tabla MODELO
                            splitContainer1.Panel2.Controls.Clear();
                            IUModelo iuModelo = new IUModelo();
                            iuModelo.mostrarDatos(idSelectedNode, selectedNode.Parent.Tag.ToString());
                            splitContainer1.Panel2.Controls.Add(iuModelo);
                        }
                    }
                }
                else
                {
                    //se trata del nodo raiz
                    splitContainer1.Panel2.Controls.Clear();
                    IUGeneral iuGeneral = new IUGeneral();
                    splitContainer1.Panel2.Controls.Add(iuGeneral);
                }
            }
        }
    }
}
